# -*- coding:utf-8 -*-
# @Time:2023/11/30 20:15
# @Author: cevent
# @name=authlib生成JSON Token（JWT加密专用）
from authlib.jose import jwt, JoseError

# 签名算法
header = {'alg': 'HS256'}
# 签名的秘钥
secretKey = 'secret_key'


# 生成用于uni唯一性的验证JWT（json web token）
def generateToken(userid, openid, **kwargs):
    # 数据打包：JSON
    data = {'userId': userid, 'openId': openid}
    # 拼接未知参数
    data.update(**kwargs)

    # 返回加密数据
    return jwt.encode(header=header, payload=data, key=secretKey)


# 转换token生成json
def transferTokenToJson(token, secretKey):
    try:
        data = jwt.decode(token, secretKey)
        return data
    except JoseError:
        return '秘钥错误!'


if __name__ == '__main__':
    token = generateToken('123', '456789cevent')
    print('token:', token)
    tokenJson = transferTokenToJson(token, secretKey)
    print('tokenJson:', tokenJson)
